package com.ruyuan.eshop.construction.api;

import com.ruyuan.eshop.common.core.JsonResult;
import com.ruyuan.eshop.construction.domain.dto.FrontCategoryDTO;
import com.ruyuan.eshop.construction.domain.dto.FrontCategoryTreeDTO;
import com.ruyuan.eshop.construction.domain.dto.FrontCategoryResultDTO;
import com.ruyuan.eshop.construction.domain.request.QueryCategoryRequest;
import com.ruyuan.eshop.construction.domain.request.FrontCategoryRequest;

import java.util.List;

/**
 * 前台类目服务接口
 *
 * @author zhonghuashishan
 */
public interface FrontCategoryApi {

    /**
     * 新增/编辑类目接口
     *
     * @param request
     * @return com.ruyuan.eshop.common.core.JsonResult<com.ruyuan.eshop.construction.domain.dto.FrontCategoryResultDTO>
     * @author zhonghuashishan
     */
    JsonResult<FrontCategoryResultDTO> frontCategory(FrontCategoryRequest request);

    /**
     * 查询类目树
     *
     * @param request
     * @return com.ruyuan.eshop.common.core.JsonResult<java.util.List<com.ruyuan.eshop.construction.domain.dto.FrontCategoryTreeDTO>>
     * @author zhonghuashishan
     */
    JsonResult<List<FrontCategoryTreeDTO>> frontCategoryTree(QueryCategoryRequest request);

    /**
     * 查询当前类目的子节点
     *
     * @param request
     * @return com.ruyuan.eshop.common.core.JsonResult<java.util.List<com.ruyuan.eshop.construction.domain.dto.FrontCategoryDTO>>
     * @author zhonghuashishan
     */
    JsonResult<List<FrontCategoryDTO>> frontCategoryChild(QueryCategoryRequest request);
}
